<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>For</title>
</head>
<body>
    <script>
        let arr = [1,2,3,4,5];
        arr.name = '123';
        arr.showName = function(){
            console.log(this.name);
        }
        // for 循环中不可以使用return， 可以使用continue 和 break， continue 跳出当前循环继续下一个， break跳出当前循环
        // 当for循环处于函数体中时可以使用return， 这时候的return表示跳出函数体
        function test(){
            for(var i = 0; i < arr.length; i++){
                console.log(i);
                if(i == 1){
                    return;
                }
            }
        }
        // test();
        // 不可以使用continue break 但是可以使用return 相当于跳出当前循环
        // arr.forEach(item => {
        //     console.log(item);
        // })
        // map 根据返回值创建新数组
        arr.map(item => {value: item});// [{value: 1}, xxxx];
        // for in 遍历一个对象除Symbol外的所有可枚举属性  一般上使用时会用hasOwnproperty
            // defineProperty 和 defineProperties 的区别  主要是用法
        Object.defineProperty(arr, 'age', {
            value: 10,
            enumerable: true //可枚举属性
        })
        for (const key in arr) {
            console.log(arr[key]); // 会输出age
        }

        // for of 遍历可迭代， 也就是有entries属性的数据结构
        
        </script>
</body>
</html>